package com.ray.depot.table.mapper;

import com.ray.depot.table.entity.MaterialProperty;
import com.ray.depot.table.entity.MaterialPropertyExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface MaterialPropertyMapper {
    /**
     * 根据条件统计总数
     *
     * @param example
     */
    long countByExample(MaterialPropertyExample example);

    /**
     * 根据条件删除数据
     *
     * @param example
     */
    int deleteByExample(MaterialPropertyExample example);

    /**
     * 根据主键删除数据库的记录
     *
     * @param propertyId
     */
    int deleteByPrimaryKey(String propertyId);

    /**
     * 插入数据库记录
     *
     * @param record
     */
    int insert(MaterialProperty record);

    /**
     * 插入对象中有值的数据
     *
     * @param record
     */
    int insertSelective(MaterialProperty record);

    /**
     * 根据条件查询数据
     *
     * @param example
     */
    List<MaterialProperty> selectByExample(MaterialPropertyExample example);

    /**
     * 根据主键获取一条数据库记录
     *
     * @param propertyId
     */
    MaterialProperty selectByPrimaryKey(String propertyId);

    /**
     * 根据条件更新对象有值的数据
     *
     * @param record
     * @param example
     */
    int updateByExampleSelective(@Param("record") MaterialProperty record, @Param("example") MaterialPropertyExample example);

    /**
     * 根据条件更新对象数据
     *
     * @param record
     * @param example
     */
    int updateByExample(@Param("record") MaterialProperty record, @Param("example") MaterialPropertyExample example);

    /**
     * 根据对象主键更新有值的字段
     *
     * @param record
     */
    int updateByPrimaryKeySelective(MaterialProperty record);

    /**
     * 根据主键来更新数据库记录
     *
     * @param record
     */
    int updateByPrimaryKey(MaterialProperty record);

    /**
     * 根据对象值查询数据
     *
     * @param record
     */
    List<MaterialProperty> selectByRecord(MaterialProperty record);
}